package com.sv.ues.fia.tourismosv;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;

import org.json.JSONObject;


import sv.ues.fia.tourismosv.R;
import sv.ues.fia.tourismosv.R.layout;
import sv.ues.fia.tourismosv.R.menu;
import sv.ues.fia.tourismosv.ws.ControladorServicio;
import android.os.Bundle;
import android.os.StrictMode;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
import android.os.Bundle;
import android.os.StrictMode;

public class SincronizarWsActivity extends Activity {

	private final String urlHostingGratuito = "http://turismoapp.webuda.com/";
	private final String urlLocal = "http://192.168.1.3:8080/WSTturismoApp/webresources/sv.ues.fia.turismo.entidad.";
	CrearBaseTurismo BDhelper;
	ArrayList<HashMap<String, String>> listaComentarios= new ArrayList<HashMap<String, String>>();
	ArrayList<HashMap<String, String>> listaPuntuaciones= new ArrayList<HashMap<String, String>>();
	
	@SuppressLint("NewApi")
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sincronizar_ws);
		
		StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
		.permitAll().build();
StrictMode.setThreadPolicy(policy);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.sincronizar_ws, menu);
		return true;
	}
	
	public void sincronizarWsLocal(View v) {
		
		BDhelper = new CrearBaseTurismo(this);
		listaComentarios = BDhelper.listarNoSyncComentario();
		if (listaComentarios.size()==0)	Toast.makeText(this, "No hay Comentarios que enviar", Toast.LENGTH_LONG).show();
	
		Iterator<HashMap<String, String>> it=listaComentarios.iterator();
		String urlLocalComentario = urlLocal+"comentario";
		while (it.hasNext()){
			HashMap<String, String> punto = new HashMap<String, String>();
			punto = it.next();
									
			JSONObject datosComentarios = new JSONObject();
			 
			try {
				datosComentarios.put("idLugar", Integer.valueOf(punto.get("Id_Lugar")));
				datosComentarios.put("critica", punto.get("Critica"));
				datosComentarios.put("sync", 1);
				
				BDhelper.actualizarComentario(punto.get("Id_Comentario"), "sync");
				
				ControladorServicio.insertaRegistroLocal(urlLocalComentario, datosComentarios, this);
				Toast.makeText(this, "Comentarios sincronizados", Toast.LENGTH_LONG).show();
	
				
			} catch (Exception e) {
				Toast.makeText(this, "Error en los datos", Toast.LENGTH_LONG).show();
			}
			
		}
		
		
		listaPuntuaciones = BDhelper.listarNoSyncPuntuacion();
		if (listaPuntuaciones.size()==0)	Toast.makeText(this, "No hay Puntuaciones que enviar", Toast.LENGTH_LONG).show();
		
		Iterator<HashMap<String, String>> it2=listaPuntuaciones.iterator();
		String urlLocalPuntuacion = urlLocal+"puntuacion";
		while (it2.hasNext()){
			HashMap<String, String> punto = new HashMap<String, String>();
			punto = it2.next();
									
			JSONObject datosComentarios = new JSONObject();
			 
			try {
				datosComentarios.put("idLugar", Integer.valueOf(punto.get("Id_Lugar")));
				datosComentarios.put("puntos", Integer.valueOf(punto.get("Puntos")));
				datosComentarios.put("sync", 1);
				
				BDhelper.actualizarPuntuacion(punto.get("Id_Puntuacion"), "sync");

				ControladorServicio.insertaRegistroLocal(urlLocalPuntuacion, datosComentarios, this);
				Toast.makeText(this, "Puntuaciones sincronizadas", Toast.LENGTH_LONG).show();
	
				
			} catch (Exception e) {
				Toast.makeText(this, "Error en los datos", Toast.LENGTH_LONG).show();
			}
			
		}
		

	
	}
	
	public void sincronizarWsExterno(View v) {
		
		BDhelper = new CrearBaseTurismo(this);
		listaComentarios = BDhelper.listarNoSyncComentarioPhp();
		if (listaComentarios.size()==0)	Toast.makeText(this, "No hay Comentarios que enviar", Toast.LENGTH_LONG).show();

		Iterator<HashMap<String, String>> it=listaComentarios.iterator();
		String urlExternaComentario = urlHostingGratuito+"ws_insertar_comentario.php";
		while (it.hasNext()){
			HashMap<String, String> punto = new HashMap<String, String>();
			punto = it.next();
			
			urlExternaComentario = urlExternaComentario + "?idlugar=" + punto.get("Id_Lugar") + "&critica="
					+ punto.get("Critica");
			ControladorServicio.insertarRegistroExterno(urlExternaComentario.replaceAll(" ", "%20"), this);
			BDhelper.actualizarComentario(punto.get("Id_Comentario"), "syncphp");

		
		}
		
		listaPuntuaciones = BDhelper.listarNoSyncPuntuacionPhp();
		if (listaPuntuaciones.size()==0)	Toast.makeText(this, "No hay Puntuaciones que enviar", Toast.LENGTH_LONG).show();
		
		Iterator<HashMap<String, String>> it2=listaPuntuaciones.iterator();
		String urlExternaPuntuacion = urlHostingGratuito+"ws_insertar_puntuacion.php";
		while (it2.hasNext()){
			HashMap<String, String> punto = new HashMap<String, String>();
			punto = it2.next();
			
			urlExternaPuntuacion = urlExternaPuntuacion + "?idlugar=" + punto.get("Id_Lugar") + "&puntos="
					+ punto.get("Puntos");
			ControladorServicio.insertarRegistroExterno(urlExternaPuntuacion, this);
			
			BDhelper.actualizarPuntuacion(punto.get("Id_Puntuacion"), "syncphp");

		}
		
	
	
	}
	
	

}
